1. Technical Field
The disclosed embodiments relate to web applications.
2. Background Information
Cellular telephones execute ever more complex application programs. Examples of complex application programs include video messaging programs, mobile television viewing programs, and three-dimensional multi-user video game programs. A contemporary user of a cellular telephone often does not just use the cellular telephone to engage in wireless telephone conversations. Rather, the user uses the cellular telephone as an input/output device to interact with and access services and data provided by and on other remote computers. In one example, the cellular telephone of each of a plurality of users executes a copy of a video game application program. The cellular telephones communicate with each other either directly or through a central computer such that the users can all play the same multi-user video game in a common virtual environment.
Executing such a complex application program on a cellular telephone may, however, consume a large proportion of the resources of the cellular telephone. Examples of cellular telephone resources include battery capacity, memory capacity, and processing power. Executing the complex application program may take up a lot of the available battery capacity. Playing the video game may, in fact, use so much battery energy that there is inadequate battery energy left over for the cellular telephone to communicate as a cellular telephone. Alternatively, playing the video game may consume battery energy quickly without the user recognizing that the resulting discharged battery is so discharged that it cannot power the cellular telephone for a cellular telephone call of ordinary duration.
Not only can a complex application use a large amount of the available battery energy, but the complex application program may also use a large proportion of the available random access memory (RAM) of the cellular telephone. If the cellular telephone is being used to the play the multi-user video game, then so much of the available memory may be used by the video game application that the cellular telephone may not be able to invoke another application program at the same time. Executing the complex application program may also require and use a large proportion of the available processing power of the central processing unit (CPU) of the cellular telephone. If the cellular telephone is being used to the play the multi-user video game, then so much of the processing power of the cellular telephone may be used that it may not be possible to execute another application program with a desired processing speed or responsiveness.
Some of these problems can be addressed by executing the complex application program on a remote computer and using the cellular telephone as an input/output device to interact with an application. Browser software executing on the cellular telephone that is used to interact with the remote computer uses a smaller amount of resources than the complex application program would were the complex application program executed on the cellular telephone. The usage of resources in the cellular telephone is therefore reduced. The application program that executes on the remote computer is sometimes called a “web-browser application”, a “web application” or a “Webapp” because the browser executing on the cellular telephone is used to communicate across the World Wide Web with the application running on the remote computer. Internet access to such applications executing on a cluster of computers (sometimes referred to as a “server farm”) may be provided for a fee for use by cellular telephone users as Webapps. In one example, the multi-user video game application program is executing on a computer in such a server farm. Rather than consuming large amounts of cellular telephone resources executing the complex application program on the cellular telephone, the user only executes the browser on the cellular telephone and interacts with the complex application program that is executing on the computer in the server farm.
It is not, however, always desirable to execute such a complex application program on a remote computer. There may be cost issues, or communication latency or reliability issues, or other issues that favor execution of the complex application on the cellular telephone in a particular circumstance. Where the resources of the cellular telephone are stretched thin due to usage of such application programs, there may be only a small amount of spare resources available on the cellular telephone. If, for example, a higher priority application is then to be used, it may not be possible to invoke the higher priority application program if the total amount of resource usage would exceed the total available amount of resources on the cellular telephone. The situation could also involve a resource being used so heavily that when an incoming cellular telephone call is to be received, the cellular telephone does not have adequate resources to receive the call. Managing the resources and deciding which application programs to offload as Webapps and which application programs not to offload or not invoke in a given circumstance can be cumbersome and difficult.